1. Field of the Invention
The present invention relates to a multiprocessor system in which processors communicate with each other to execute parallel processing and, more particularly, to a method and apparatus for transferring and processing data in a multiprocessor system.
2. Description of the Related Art
In recent years, computer systems operating at higher speeds and having larger capacities have been required. To satisfy this requirement, it is necessary to prepare a plurality of processors and to distribute processing among them to effect parallel processing. That is, parallel processing techniques have been needed.
As one multiprocessing technique using plural processors, a multiprocessor system has been proposed in which main storage is distributed among plural portions, controlled by their respective processors, which execute parallel processing. This multiprocessor system is known as a memory-distributed parallel processing system, for example. In this system, processors operate in parallel while exchanging data with each other via a communication system. Thus, all the processors operate concurrently to execute one process.
Generally, when a calculation is performed by such a multiprocessor system, data that is necessary for a first processor to execute the calculation is conveyed from those storage regions of the main storage which are ancillary to one or more second processors to the storage region of the main storage ancillary to the first processor. When the data required for the calculation is completely loaded into the storage region of the main storage ancillary to the first processor, the first processor executes the calculation. The result of the calculation is stored in the storage region of the main storage ancillary to a third processor which is to hold or store the result. In this case, it is not necessary that the first through third processors all be separate units. Sometimes, some of the processors are a common processor. The processor system carries out parallel batch processing according to a sequence of procedures described above. The processors repeatedly execute the above-described processing synchronously, whereby parallel processing is performed.
Specifically, before processors perform arithmetic operations, data is usually transferred between a first processor i for performing the arithmetic operations and a second processor j having data necessary for the arithmetic operations. In this case, in order to transfer the data, the first processor i transmits to the second processor j a request for the transfer. Then, the second processor j transfers data about reading to the first processor i. Alternatively, the second processor j causes data to be written to the storage region of the main storage ancillary to the first processor i.
In order to universally realize the logic of the above-described processing, transfer of data within the main storage is needed even if the first processor i and the second processor j are the same processor, because their respective real addresses in the main storage are different.
It takes a long time for a conventional multiprocessor systems to transfer data between processors or between storage regions. Hence, it has not been possible to execute parallel processing quickly. Consequently, there is a demand for a technique for shortening the data transfer time.